using System;
using System.Collections.Generic;
using System.Text;

namespace Jbe.TestSuite.TestDevices.Interface
{
    /// <summary>
    /// A test device.
    /// </summary>
    public interface IDevice
    {
        /// <summary>
        /// Occurs when the device has been disconnected.
        /// </summary>
        event EventHandler Disconnected;

        /// <summary>
        /// The profile name defines the category of this device. The device can be
        /// controlled by a <see cref="IDeviceController"/> which is written for this 
        /// profile.
        /// </summary>
        string ProfileName { get; }
        
        /// <summary>
        /// The product name of the device.
        /// </summary>
        string ProductName { get; }

        /// <summary>
        /// The manufacturer of the device.
        /// </summary>
        string Manufacturer { get; }

        /// <summary>
        /// Disconnect the device.
        /// </summary>
        void Disconnect();
    }
}
